package _15define;

public class Test3 {
    public static void main(String[] args) {
        INoReturnTwoParam ip1=(int a,int b)->{
            System.out.println(a+b);
        };
        ip1.test(1,1);
        INoReturnTwoParam ip2=(a,b)->{
            System.out.println(a+b);
        };
        ip2.test(2,2);
        INoReturnOneParam ip3=(int a)->{
            System.out.println(a);
        };
        ip3.test(10);
        INoReturnOneParam ip4=a -> {
            System.out.println(a+1);
        };
        ip4.test(20);
        INoReturnNoParam ip5=()-> System.out.println("aaa");
        ip5.test();
        IHasReturnOneParam ip6=(s)->{
            return s+1;
        };
        int num=ip6.test(15);
        System.out.println("num="+num);
        IHasReturnTwoParam ip7=(n1,n2)->{
            return n1+n2;
        };
        int sum= ip7.test(10,20);
        System.out.println("sum="+sum);
    }
}
//无返回值无参数的功能接口
@FunctionalInterface
interface INoReturnNoParam {
    void test();
}
//无返回值有一个参数的功能接口
@FunctionalInterface
interface INoReturnOneParam {
    void test(int a);
}
//无返回值两个参数的功能接口
@FunctionalInterface
interface INoReturnTwoParam {
    void test(int a, int b);
}
//有返回值无参数的功能接口
@FunctionalInterface
interface IHasReturnNoParam {
    int test();
}
//有返回值一个参数的功能接口
@FunctionalInterface
interface IHasReturnOneParam {
    int test(int a);
}
//有返回值两个参数的功能接口
@FunctionalInterface
interface IHasReturnTwoParam {
    int test(int a, int b);
}